Existing graphical user interfaces (GUI""s) in computer systems provide a variety of tools to manipulate information. One of the key design characteristics of graphical user interface is the concept of direct manipulation. Traditional disk operating systems used a command line interface (such as the MS DOS operating system available from Microsoft Corporation of Redmond, Wash.), and English language commands are issued by a user in order to cause certain events to occur. In modern GUI""s, files and other information are directly manipulated by selecting icons representing files and moving the icons while selected on the computer system display. In this manner, files may be moved, copied, deleted, and otherwise manipulated in the file system of the computer.
An example of this process is shown in FIGS. 1a-1d. For example, in FIG. 1a, in a window 100, which is displayed on a computer system display, the user may select an icon 120 representing a file using a cursor pointer 110 which is under user control using a mouse, trackball, or other cursor control device. Once selected the user may move or manipulate the icon in any manner in order to perform certain actions in the file system. Icon 120 is shown in its selected state in window 100 of FIG. 1a. Then, as is illustrated in FIG. 1b, the user may start to move cursor 110 while the icon is selected causing an outline image representation of the icon and its file name, which is illustrated as 130, to be moved on the computer system display. This allows the user to manipulate the file for movement within the file system. Then, as is illustrated in FIG. 1c, the user may move pointer 110 to a subdirectory entitled xe2x80x9cDocuments,xe2x80x9d shown as 140 in FIG. 1c (also known as a xe2x80x9cfolderxe2x80x9d in the Macintosh(copyright) brand operating system), for movement of that file in the file system. When the xe2x80x9cfolderxe2x80x9d icon 140 is pointed to by pointer 110, it becomes shown in its highlighted state, as is illustrated in FIG. 1c. Then, as is illustrated in FIG. 1d, when the user deselects the icon (that is, releases a mouse button or other selection means), the original icon 120 disappears from the window, and icon 140 is shown in an unselected state. In addition to the visual representation on window 100 as is illustrated in FIG. 1d, the file has been moved from the directory which window 100 represents to the subdirectory xe2x80x9cDocumentsxe2x80x9d represented by icon 140. For accessing the file represented by icon 120 at a later time, the user will select icon 140 causing a second window to be displayed representing that subdirectory and be able to access the file represented by icon 120. Thus, movements within the file system and reorganization of files in the file system, known as the HFS (Hierarchical Filing System) in the Macintosh(copyright) brand operating system, may be performed using this prior art technique.
Another prior art implementation of a movement of information in a graphical user interface such as that used by the Macintosh(copyright) brand operating system is illustrated with reference to FIGS. 2a-2d. For example, this is a process which may be used for transferring text between a window displaying one set of text (e.g., 210) and a second window with a second set of text in it (e.g., 220). As is illustrated in FIG. 2a, the user will select a region of text in document 210 utilizing cursor 200 under control of the cursor control and selection device and select an option from a pull-down menu 230, such as xe2x80x9cCutxe2x80x9d 230a. This is a destructive move operation wherein the text is removed from document 210 and will be moved to document 220. This is all illustrated in FIG. 2a. Then, the user will move the cursor to second document 220 in text area 220a and select a region in the text at which he desires the text to be moved. The cursor in text region 220a will change to a format known as insertion carat 250 which indicates where the insertion point will be. Then, as is illustrated in FIG. 2c, the user will use pull-down menu 230 again, selecting a second option xe2x80x9cPastexe2x80x9d 230b to retrieve text 240 from an intermediate storage device, such as a clipboard or other type of intermediate storage buffer, and insert the text at that location. As is illustrated in FIG. 2c, the text is still highlighted as this is shown immediately after the paste operation. Then, the highlighting is removed, as is illustrated in FIG. 2d, when the user selects other regions of the screen to operate in or performs other operations. Thus, as is illustrated in FIG. 2d, the destructive move operation from Document 1210 to Document 2220 has been accomplished. As is well-known to those skilled in the prior art, nondestructive xe2x80x9ccopyxe2x80x9d operations may also be performed in a similar manner by selecting other pull-down menu options on pull-down menus such as FIGS. 2a and 2c. Note that the documents 210 and 220 may be under control of a single program, such as a word processing program, or may be under control of different application programs, such as one word processing program and a second word processing program or any other type of application program. As is well-known to those skilled in the prior art, transfer among different types of application programs may be accomplished using the cut and paste operations described with reference to FIGS. 2a-2d on a variety of architectural platforms using the intermediate storage buffer known as the clipboard. Other types of information such as graphical information, numeric information, or other types of information may be transferred in this manner.
Upon viewing FIGS. 1a-1d and 2a-2d, it is apparent that there is a dichotomy between the two techniques. Users become used to the manipulation of files in the manner which is illustrated with reference to FIGS. 1a-1d, however, the user must learn the use of a second tool known as the xe2x80x9cEditxe2x80x9d pull-down menu illustrated as 230 in FIGS. 2a-2d in order to perform manipulation of information between windows and/or application programs and/or files. Thus, there is a need for improved manipulations of various types of data, especially between application programs than techniques which exist in the prior art.
One of the objects of the present invention is to provide an improved method and apparatus for manipulating information in a computer system.
Another of the objects of the present invention is to provide a consistent user interface for manipulation of information between and within application programs and within an operating system.
Another of the objects of the present invention is to provide an improved means for providing feedback to a user of manipulation of information in a computer system.
Another of the objects of the present invention is to provide an architecture for direct manipulation of data to and from application programs and files in a file system.
These and other objects of the present invention are provided for by a method and apparatus for manipulating data between application programs. A user may select an item in a first window under control of a first process which specifies formats in which data from the selected first item may be provided. The user drags the selected item to a second window, wherein the second window is under control of a second process. The user deselects the selected item while the item is located at the second window, and the second process determines if the second process can perform a primary action based upon a first format of the first item and, if so, then receives data from the first process in the first format and performs the primary action using the first format. The action may include a plurality of actions including such system services as printing, sending electronic mail, or other actions which may be performed in a computer system. The method further comprises alternative actions and action selection mechanisms which are activated by a user selecting various activation means in the computer-controlled display system. The selection means may include a list of plurality of actions which can be performed by the second process using the formats from the first process. The user may select one of the desired actions from the plurality of actions, and the process performs the desired action. Any number of a plurality of actions may be selected from based upon the format of the first item provided by the first process. Such actions are known as xe2x80x9cverbsxe2x80x9d in the preferred embodiment.
Other features, advantages, and novel aspects of the present invention will become apparent from the detailed description which follows below.